跳到主要内容

PostgreSQL 的启动与关停

在完成 PostgreSQL 的部署工作之后,我们已经非常顺利地安装了相关的客户端工具与服务端工具,在本篇材料之中,我们将就 PostgreSQL 的启动与关停展开讨论,它将会更好地帮助我们理解 PostgreSQL 运行的原理。


PostgreSQL 的工作架构

PostgreSQL 采用一种名为“客户端-服务端”的架构展开工作,在这种架构的指导之下,用户通过某种客户端工具(如 psql)向 PostgreSQL 的服务端发送信息(SQL查询语句,连接字符串等内容),并根据服务端的反馈,向用户呈现出对应的结果,如图所示:

system

在 PostgreSQL 下面,为这种工作架构设置的术语如下所示

  • Server(服务端)Backend(后端)
    工作于一台或者多台主机上面的 PostgreSQL 数据库
  • Client(客户端)Frontend(前端)
    用户用于连接到 PostgreSQL 所使用的工具,如 psql, pgadmin 等
  • Session(会话)Connect(连接)
    代表一条客户端与服务端之间的网络连接

而我们对于 PostgreSQL 的启动工作,就发生于服务端上面,只有我们这块的工作做好了,才可以迎接那些远道而来的客人。

PostgreSQL 服务端的工作原理

自总的原理来看,PostgreSQL 服务端的工作模式非常简单,它从一个名为“PGDATA”的目录里面读取数据(PGDATA 实际上就是由我们所指定好的一个普通目录,用于存储 PostgreSQL 数据库的配置文件、应用程序的数据文件等),完成初始化,并正式接受来自于外部客户端的连接,并在与客户端的交互当中,又修订“PGDATA”目录中的某些数据(直观体现就是数据表的修订,以及某些服务端行为的改变等),由此顺利提供了良好的数据管理服务。

principle

因此想要让 PostgreSQL 工作起来,我们只需要让服务端程序可以从 “PGDATA” 目录中加载数据完成初始化,并且顺利运行起来,就可以达到我们的目标,一般而言,在经过前文所述的部署工作以后,PostgreSQL 在默认情况之下,可以顺利找到工作的目录,也能够通过以注册系统服务的方式实现自启动,但是,事情总有起变化的时候,掌握以手动方式启动与关闭 PostgreSQL 的能力,依旧是非常必要。

使用手动方法启动与关停 PostgreSQL

在 PostgreSQL 中,一般而言,有两种方法可以供我们手动启动服务端,即依托 pg_ctl 工具或是直接借助 postgres 服务端程序。

使用 pg_ctl 工具的策略

参考如下的指令

# 启动 PostgreSQL 服务端
pg_ctl -D PGDATA start
# 关停 PostgreSQL 服务端
pg_ctl -D PGDATA stop

假定 PostgreSQL 的数据目录文件位于当前目录下面的 postgres/data 文件夹之中,则可以使用如图所示的方法进行启动与关停。

pg_ctl

使用 postgres 服务端程序

参考如下的指令

# 启动服务端
postgres -D PGDATA

参考如下

postgres

因为 postgres 就是 PostgreSQL 运行的服务端文件,因此我们只需要使用 ctrl + c 终止其运行,就可以实现关停。